3

Docker是什么

Docker是一款由DotCloud公司(现改名为Docker)基于Go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何影响。

Docker相关概念

Docker 客户端(Docker Client)

Docker客户端分为2种,一种是基于命令行的Docker客户端,在终端使用Docker命令来工作;另外一种是基于REST API的客户端。

Docker 镜像(Docker Image)

镜像顾名思义,可以理解为就是一个安装包,放到恰当的环境中就可以开箱即用。例如*.EXE文件,windows下可以直接运行。同理,docker镜像在docker环境中,即可直接运行,实例化一个容器将镜像的应用程序封装在里面。

Docker 容器(Docker Container)

Docker镜像运行后,此时就实例化了一个Docker容器。镜像作为一个安装包,可以无限被安装,即可以运行无数个容器来运行里面的应用程序。

Docker 镜像注册中心(Docker Register)

Docker 官方了一个类似Maven仓库私服的镜像管理中心Docker Hub,可以存放私有和公共的Docker镜像。
Docker Hub地址:https://hub.docker.com
更多操作请读者,自行体验。

Docker与虚拟机对比

Docker和虚拟机都是提供了不同程度的隔离环境。Docker侧重的是应用级别,而虚拟机是彻底隔离整个运行环境。相比之下Docker显得更轻量级。启动速度也比虚拟机快很多,Docker号称是可以毫秒级别的启动,相比虚拟机没个几十秒甚至几分钟是起不来的。
从运行架构来看,两者很类似,虽然本质相差甚远。
Docker容器需要在Docker引擎之上运行,Docker容器上安装应用的运行环境,然后在此环境下运行各种终端应用。
同理,虚拟操作系统需要虚拟机软件上,如Oracle VirtualBox、VMware Workstation等,然后在虚拟操作系统支持的运行环境(windows、linux)安装应用。

Docker的特性

对于容器技术,Docker并不是先驱者,很早之前就有了。并且Docker并没有创造任何新技术,它是通过在底层封装linux容器技术(LXC)来实现的。那么,问题来了,Docker为毛能火?
Docker拥有以下特点:

快速运行

上面提到了与虚拟机的对比,可知,Docker启动速度有多快,没错,就是毫秒级别。要的就是开发效率。

节省资源

Docker容器运行在Docker引擎之上,能够直接使用宿主机硬件资源,无须占用过多的系统资源。

方便交付

Docker将应用以及运行环境打包成一个镜像,交付更简单、高效。

管理省心

通过Docker客户端可直接操作Docker引擎,非常方便管理Docker镜像和容器。

Docker安装

以下是不同操作系统的安装方法

linux(centos 7.x)

第一步:更新yum包

$ yum update 

第二步:安装docker引擎

$ yum install docker-engine

第三步:启动

$ systemctl start docker.service

第四步:查看版本

$ docker version
mac os

由于我在mac上使用brew死活安装不了Docker,选择了安装包安装。
下载地址:https://download.docker.com/mac/stable/Docker.dmg
直接运行,下一步下一步就好了。

windows

下载地址:https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe
点击运行即可一如既往的下一步下一步完成安装。

推荐

ifast是一款基于Spring Boot + Mybatis + Mybatis Plus搭建的快速开发平台。ifast集成了代码生成器,具有高效的开发效率。以Spring Boot为基础框架,Mybatis plus为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,基于Bootstrap构建的hplus作为前端框架。
访问请点击 Java快速开发脚手架 ifast


Aron
858 声望102 粉丝

搞过c/c++, 玩过c#,正在撸java。